import type { GenericFileInfo, MirrorWebsiteFile } from "@common/spider-types.ts";

/**
 * 爬虫
 */
export const Spider = {
  /**
   * 从镜像网站获取文件列表
   *
   * 已支持镜像站点:
   *  - 阿里云
   *  - 腾讯云
   *  - 华为云
   *  - 清华大学
   *  - Apache
   *
   * @param url 镜像网站地址
   */
  getMirrorFiles: (url: string): Promise<MirrorWebsiteFile[]> => native.ipc.invoke("spider.getMirrorFiles", url),

  /**
   * 获取nacos最新稳定版本下载列表
   */
  getNacosStableVersions: (): Promise<GenericFileInfo[]> => native.ipc.invoke("spider.nacos.getNacosStableVersions"),

  /**
   * 获取Golang下载列表
   * @param prefix 站点地址
   */
  getGolangDownloadList: (prefix: string): Promise<GenericFileInfo[]> => native.ipc.invoke("spider.golang.getDownloadList", prefix),
};
